package com.easylinkin.linkappapi.jglplant.entity;


import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Objects;

/**
 * 鸡公岭-植物库(JglPlant)表实体类
 *
 * @author makejava
 * @since 2022-02-18 17:47:19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("jgl_plant")
public class JglPlant extends Model<JglPlant> {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 名称
     */
    private String name;
    /**
     * 纲
     */
    private String type1;
    /**
     * 科
     */
    private String type2;
    /**
     * 属
     */
    private String type3;
    /**
     * 种
     */
    private String type4;
    /**
     * 图片地址
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String image;
    /**
     * 形态特征
     */
    private String feature;
    /**
     * 分布范围
     */
    private String area;
    /**
     * 上传附件地址
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String attachment;
    /**
     * 租户id
     */
    private String tenantId;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改时间
     */
    private Date modifyTime;
    /**
     * 创建人id
     */
    private String creator;
    /**
     * 修改人id
     */
    private String modifier;

    @TableField(exist = false)
    private List<JglExpert> jglExpertList;

    /**
     * 获取主键值
     *
     * @return 主键值
     */
    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    public boolean allTypeEquals(String type1, String type2, String type3, String type4) {
        boolean b1 = Objects.equals(this.type1, type1);
        boolean b2 = Objects.equals(this.type2, type2);
        boolean b3 = Objects.equals(this.type3, type3);
        boolean b4 = Objects.equals(this.type4, type4);
        return b1 && b2 && b3 && b4;

    }
}

